home *** CD-ROM | disk | FTP | other *** search
/ A.C.E. 2 / ACE CD 2.iso / FILES / UTILS / AMOS2.DMS / in.adf / Number_Leap.AMOS / Number_Leap.amosSourceCode
Encoding:
AMOS Source Code  |  1978-08-29  |  13.9 KB  |  549 lines

  1. '                           AMOS Number Leap 
  2. '
  3. '                            BY P.J. Hickman 
  4. Close Editor 
  5. 'Define Global Variables 
  6. Dim NUMS(6,4),WEIGHTING(9),NUMBER$(20)
  7. If Chip Free>250000
  8.    ENOUGH_MEM=True
  9. Else 
  10.    ENOUGH_MEM=False
  11. End If 
  12. 'Set Up Game 
  13. SET_UP
  14. 'Main Loop 
  15. Repeat 
  16.    TB=Rnd(7)+3
  17.    FROGX=0
  18.    FROGY=1
  19.    MOVES=0
  20.    TITLE_PAGE
  21.    Repeat 
  22.       CHECK_MOVE
  23.       CHECK_SINK
  24.       FROG_SINK=Param
  25.       CHECK_FINISH
  26.       CROSSED=Param
  27.    Until CROSSED or FROG_SINK
  28. Until False
  29. End 
  30. 'Check Keyboard And Make Frog Move Accordingly 
  31. Procedure CHECK_MOVE
  32.    Shared FROGX,FROGY,MOVES,ENOUGH_MEM
  33.    WALKIES=False
  34.    Timer=0
  35.    Clear Key 
  36.    Repeat 
  37.       TEMP$=Inkey$ : TEMP=Scancode
  38.       UPPER=Key State(76) or Jup(1)
  39.       LOWER=Key State(77) or Jdown(1)
  40.       LEFT=Key State(79) or Jleft(1)
  41.       RIGHT=Key State(78) or Jright(1)
  42.       If UPPER and FROGY>1
  43.          UPPER_MOVE
  44.          WALKIES=True
  45.          Dec FROGY
  46.       End If 
  47.       If LOWER and FROGY<4
  48.          LOWER_MOVE
  49.          WALKIES=True
  50.          Inc FROGY
  51.       End If 
  52.       If RIGHT
  53.          RIGHT_MOVE
  54.          WALKIES=True
  55.          Inc FROGX
  56.       End If 
  57.       If LEFT and FROGX>0
  58.          LEFT_MOVE
  59.          WALKIES=True
  60.          Dec FROGX
  61.       End If 
  62.       If Timer mod 300=0 and Timer>300 and ENOUGH_MEM and Not WALKIES Then Sam Play 1,2,6000
  63.       If Timer mod 250=0 and Timer>100 and ENOUGH_MEM Then Sam Play 2,4,9000
  64.       If TEMP>0 and TEMP<76 Then CHECK_SPEECH
  65.       Inc PASS
  66.    Until WALKIES
  67.    Inc MOVES
  68. End Proc
  69. 'Do The Dirty Work Of Calling The Initial Set Up Routines  
  70. Procedure SET_UP
  71.    Default 
  72.    Screen Close 0
  73.    CHECK_NARRATOR
  74.    FILE_LOAD
  75.    SET_UP_CHANNELS
  76.    SET_UP_WEIGHTING
  77.    SET_UP_SPEECH
  78. End Proc
  79. 'Check to see if the narrator can be loaded
  80. Procedure CHECK_NARRATOR
  81.    Shared TALK_POSSIBLE
  82.    On Error Goto BAD_ERROR
  83.    ' --- only executes this bit if no error occurs ---  
  84.    Set Talk 0,,,
  85.    TALK_POSSIBLE=True
  86.    FINISH:
  87.    Pop Proc
  88.    ' --- if an error occurs while accessing the narrator library ---
  89.    ' ---  this bit sets a variable to false so that no speech is ---
  90.    ' ---                         generated.                      ---
  91.    BAD_ERROR:
  92.    TALK_POSSIBLE=False
  93.    Resume FINISH
  94. End Proc
  95. 'Generate The Numbers Which Make Up The Maze 
  96. Procedure GENERATE_MAZE
  97.    Shared NUMS(),TB
  98.    For X=1 To 6
  99.       For Y=1 To 4
  100.          NUMS(X,Y)=Rnd((9*TB)-1)+1
  101.       Next Y
  102.    Next X
  103.    X=0 : Y=Rnd(2)+1
  104.    While X<>7
  105.       A=Rnd(2)
  106.       If X<7 Then NUMS(X,Y)=TB*(Rnd(8)+1)
  107.       If A=0 and X<7 Then Inc X
  108.       If A=1 and Y<4 Then Inc Y
  109.       If A=2 and Y>1 Then Dec Y
  110.    Wend 
  111.    WRITE_NUMBERS
  112. End Proc
  113. 'This Procedure Centres The Numbers On The Lily Pads   
  114. Procedure WRITE_NUMBERS
  115.    Shared NUMS(),TB,WEIGHTING()
  116.    ' ~~~~~ Display Table Number ~~~~~ 
  117.    TEMP=Len(Str$(TB))-1
  118.    TEMP$=Right$(Str$(TB),TEMP)
  119.    TEMP2=0
  120.    For LOP=1 To TEMP
  121.       CHAR=Val(Mid$(TEMP$,LOP,1))
  122.       Add TEMP2,WEIGHTING(CHAR)
  123.    Next LOP
  124.    POSX=40-TEMP2
  125.    For LOP=1 To TEMP
  126.       CHAR=Val(Mid$(TEMP$,LOP,1))
  127.       Paste Bob POSX,0,CHAR+33
  128.       Paste Bob POSX+263,0,CHAR+33
  129.       Add POSX,WEIGHTING(CHAR)+1
  130.    Next LOP
  131.    ' ~~~~~ Display Lily Numbers ~~~~~ 
  132.    For LOP1=1 To 4
  133.       For LOP2=1 To 6
  134.          TEMP=Len(Str$(NUMS(LOP2,LOP1)))-1
  135.          TEMP$=Right$(Str$(NUMS(LOP2,LOP1)),TEMP)
  136.          TEMP2=0
  137.          For LOP=1 To TEMP
  138.             CHAR=Val(Mid$(TEMP$,LOP,1))
  139.             Add TEMP2,WEIGHTING(CHAR)
  140.          Next LOP
  141.          POSX=(6+(LOP2-1)*45)+(40-TEMP2/2)
  142.          POSY=(46+(LOP1-1)*42)
  143.          For LOP=1 To TEMP
  144.             CHAR=Val(Mid$(TEMP$,LOP,1))
  145.             Paste Bob POSX,POSY,CHAR+33
  146.             Add POSX,WEIGHTING(CHAR)+1
  147.          Next LOP
  148.       Next LOP2
  149.    Next LOP1
  150.    Double Buffer 
  151. End Proc
  152. 'Stored The Size Of The Number BOBs In An Array
  153. Procedure SET_UP_WEIGHTING
  154.    Shared WEIGHTING()
  155.    Restore SPACEING
  156.    For LOP=0 To 9
  157.       Read WEIGHTING(LOP)
  158.    Next LOP
  159.    SPACEING:
  160.    Data 20,11,12,12,15,12,14,13,14,13
  161. End Proc
  162. 'Check If The Frog Has Hit A Wrong Number, If It Does, Sink The Pad  
  163. Procedure CHECK_SINK
  164.    Shared FROGX,FROGY,NUMS(),TB,FROG_SINK$,ENOUGH_MEM,TALK_POSSIBLE
  165.    TEMP=False
  166.    If FROGX>0 and FROGX<7
  167.       If NUMS(FROGX,FROGY) mod TB<>0
  168.          Bob Off 10
  169.          Bob 1,25+(FROGX-1)*45,37+(FROGY-1)*42,21
  170.          Amal 1,FROG_SINK$
  171.          Amal On 1
  172.          If ENOUGH_MEM
  173.             Sam Play 12,3,6000
  174.          End If 
  175.          Wait 150
  176.          Amal Off 1
  177.          Music Off 
  178.          TEMP=True
  179.          If TALK_POSSIBLE
  180.             LOSERS_SPEECH
  181.          End If 
  182.          Fade 2
  183.          Wait 28
  184.          Screen Close 7
  185.       End If 
  186.    End If 
  187. End Proc[TEMP]
  188. '         Checks To See If The Frog Has Reached The Other Bank 
  189. Procedure CHECK_FINISH
  190.    Shared FROGX
  191.    TEMP=False
  192.    If FROGX=7
  193.       TEMP=True
  194.       WELL_DONE
  195.    End If 
  196. End Proc[TEMP]
  197. 'If Frog Has Reached Other Bank Make Him Bounce A Bit  
  198. Procedure WELL_DONE
  199.    Shared FROGLEFT$,WATER$,BLEFT$,BRIGHT$,TALK_POSSIBLE
  200.    Rainbow 0,0,50,250
  201.    Amal 8,WATER$
  202.    Amal 10,FROGLEFT$
  203.    Amal On 
  204.    Wait 50
  205.    If TALK_POSSIBLE
  206.       WINNERS_SPEECH
  207.    End If 
  208.    Bob 10,X Bob(10),Y Bob(10)-10,17
  209.    ' Bounce Frog Left 
  210.    For LOP=1 To 5
  211.       Amal 10,BLEFT$
  212.       Amal On 10
  213.       Repeat 
  214.          Wait 8
  215.       Until Amreg(0)=0
  216.    Next LOP
  217.    ' Bounce Frog Right
  218.    For LOP=1 To 5
  219.       Amal 10,BRIGHT$
  220.       Amal On 10
  221.       Repeat 
  222.          Wait 6
  223.       Until Amreg(0)=0
  224.       Wait 5
  225.    Next LOP
  226.    Amal Off 10
  227.    Bob Off 10
  228.    Rainbow Del 0
  229.    Fade 2
  230.    Wait 28
  231.    Screen Close 7
  232. End Proc
  233. 'Move Frog Right 
  234. Procedure RIGHT_MOVE
  235.    Shared FROGRIGHT$,ENOUGH_MEM
  236.    Bob 10,X Bob(10)+4,Y Bob(10)+4,1
  237.    If ENOUGH_MEM Then Sam Play 12,1,7000
  238.    Amal 10,FROGRIGHT$
  239.    Amal On 10
  240.    Wait 50
  241.    Bob 10,X Bob(10)-4,Y Bob(10)-4,13
  242. End Proc
  243. 'Move Frog Left
  244. Procedure LEFT_MOVE
  245.    Shared FROGLEFT$,ENOUGH_MEM
  246.    Bob 10,X Bob(10)+4,Y Bob(10)+4,5
  247.    If ENOUGH_MEM Then Sam Play 12,1,7000
  248.    Amal 10,FROGLEFT$
  249.    Amal On 10
  250.    Wait 50
  251.    Bob 10,X Bob(10)-4,Y Bob(10)-4,13
  252. End Proc
  253. 'Move Frog Up  
  254. Procedure UPPER_MOVE
  255.    Shared FROGUP$,ENOUGH_MEM
  256.    If ENOUGH_MEM Then Sam Play 12,1,7000
  257.    Amal 10,FROGUP$
  258.    Amal On 10
  259.    Wait 50
  260.    Bob 10,X Bob(10),Y Bob(10),13
  261. End Proc
  262. 'Move Frog Down
  263. Procedure LOWER_MOVE
  264.    Shared FROGDOWN$,ENOUGH_MEM
  265.    If ENOUGH_MEM Then Sam Play 12,1,7000
  266.    Amal 10,FROGDOWN$
  267.    Amal On 10
  268.    Wait 50
  269.    Bob 10,X Bob(10),Y Bob(10),13
  270. End Proc
  271. '        Load BOBs, Pictures And Sound Into The Correct Banks  
  272. Procedure FILE_LOAD
  273.    Shared ENOUGH_MEM
  274.    Dir$="Amos_Data:"
  275.    If ENOUGH_MEM
  276.       Load "Number_Leap/Frog_Screen.ABK",7
  277.       Load "Number_Leap/Frog_Title.ABK",6
  278.       Load "Samples/Frog_Samples.ABK"
  279.       Volume 15,63
  280.    End If 
  281.    Load "Sprites/Frog_Sprites.ABK"
  282.    Make Mask 
  283. End Proc
  284. 'Set Up The AMAL Channels For The BOBs Used Within The Main Game 
  285. Procedure SET_UP_CHANNELS
  286.    Shared FROG_SINK$,FROGUP$,FROGDOWN$,FROGLEFT$,FROGRIGHT$
  287.    Shared TITLE$,FISH$,WATER$,DUCK$,BLEFT$,BRIGHT$
  288.    ' ^^^^^   Sink Channel  ^^^^^
  289.    Channel 1 To Bob 1
  290.    ' ^^^^^  Fish Channels  ^^^^^
  291.    Channel 2 To Bob 2
  292.    Channel 3 To Bob 3
  293.    Channel 4 To Bob 4
  294.    ' ^^^^^  Title Channel  ^^^^^
  295.    Channel 5 To Bob 5
  296.    ' ^^^^^  Duck Channel   ^^^^^
  297.    Channel 6 To Bob 6
  298.    ' ^^^^^    BIG Frog     ^^^^^  
  299.    Channel 7 To Bob 7
  300.    ' ^^^^^  Water Rainbow  ^^^^^
  301.    Channel 8 To Rainbow 0
  302.    ' ^^^^^  Frog Channel   ^^^^^
  303.    Channel 10 To Bob 10
  304.    '
  305.    ' ^^^^^  AMAL strings   ^^^^^
  306.    ' ^^^^^    Frog Sink    ^^^^^
  307.    FROG_SINK$="Anim 1,(22,8)(23,8)(24,8)(25,8)(26,8)(27,8)(28,8)"
  308.    FROG_SINK$=FROG_SINK$+"(29,8)(30,8)(31,8)(32,8)"
  309.    ' ^^^^^     Frog Up     ^^^^^
  310.    FROGUP$="Anim 1,(9,6)(10,6)(11,6)(12,6)(9,6) Pause "
  311.    FROGUP$=FROGUP$+"Move 0,-42,21"
  312.    ' ^^^^^    Frog Down    ^^^^^
  313.    FROGDOWN$="Anim 1,(13,6)(14,6)(15,6)(16,6)(13,6) Pause "
  314.    FROGDOWN$=FROGDOWN$+"Move 0,42,21"
  315.    ' ^^^^^    Frog Right   ^^^^^
  316.    FROGRIGHT$="Anim 1,(1,7)(2,7)(3,7)(4,7)(3,7)(1,7) Pause "
  317.    FROGRIGHT$=FROGRIGHT$+"Move 45,0,35"
  318.    ' ^^^^^    Frog Left    ^^^^^
  319.    FROGLEFT$="Anim 1,(5,7)(6,7)(7,7)(8,7)(7,7)(5,7) Pause "
  320.    FROGLEFT$=FROGLEFT$+"Move -45,0,35"
  321.    ' ^^^^^   Frog Bounce   ^^^^^
  322.    BLEFT$="         Let RA=1"
  323.    BLEFT$=BLEFT$+"     Anim 1,(17,4)(18,4)(19,4)(20,4)(21,5)"
  324.    BLEFT$=BLEFT$+"     Pause Move -23,-10,14"
  325.    BLEFT$=BLEFT$+"     Anim 1,(20,3)(19,3)(18,3)(17,3)"
  326.    BLEFT$=BLEFT$+"     Pause Move -22,10,13"
  327.    BLEFT$=BLEFT$+"  Let RA=0"
  328.    BRIGHT$="        Let RA=1"
  329.    BRIGHT$=BRIGHT$+"   Anim 1,(17,4)(18,4)(19,4)(20,4)(21,5)"
  330.    BRIGHT$=BRIGHT$+"   Pause Move 23,-10,14"
  331.    BRIGHT$=BRIGHT$+"   Anim 1,(20,3)(19,3)(18,3)(17,3)"
  332.    BRIGHT$=BRIGHT$+"   Pause Move 22,10,13"
  333.    BRIGHT$=BRIGHT$+"Let RA=0"
  334.    ' ^^^^^ Title Animation ^^^^^  
  335.    TITLE$="Begin:  Move 6,4,14  Move 6,-4,14"
  336.    TITLE$=TITLE$+" Move -6,4,14 Move -6,-4,14 Jump Begin"
  337.    ' ^^^^^ Fish Animation  ^^^^^  
  338.    FISH$="Begin: Let R0=Zandom(3)+4 Anim 0,(48,R0)(49,R0)(50,R0)"
  339.    FISH$=FISH$+"(51,R0)(52,R0)(53,R0)(54,R0)(55,R0)"
  340.    ' ^^^^^ Duck Animation  ^^^^^
  341.    DUCK$="Begin: Anim 1,(61,8) PPPP P P Anim 0,(58,8)(59,8)(58,8)(60,8)"
  342.    DUCK$=DUCK$+"P M -160,0,320 Anim 1,(61,8) P P PPPP "
  343.    DUCK$=DUCK$+"Anim 0,(62,8)(63,8)(62,8)(64,8) P M 160,0,320 Jump Begin"
  344.    ' ^^^^^     Rainbow     ^^^^^
  345.    WATER$="Begin: For R0=0 To 29 Let X=29-R0 Pause Pause Next R0 Jump Begin"
  346. End Proc
  347. 'Start Animation of Title, Frogs And Fish
  348. Procedure EXECUTE_ANIMATION
  349.    Shared TITLE$,FISH$,DUCK$
  350.    ' ^^^^^    Bouncing Title   ^^^^^  
  351.    Bob 5,78,2,43
  352.    Amal 5,TITLE$
  353.    ' ^^^^^    Duck Movement    ^^^^^
  354.    Bob 6,220,100,59
  355.    Amal 6,DUCK$
  356.    ' ^^^^^    Fish Movement    ^^^^^  
  357.    FISH_DRAW[1]
  358.    Randomize Timer
  359.    FISH_DRAW[3]
  360.    ' ^^^^^ Set Rainbow Pattern ^^^^^
  361.    Set Rainbow 0,9,30,"","","(1,1,15)(1,1,15)"
  362.    Amal On 
  363. End Proc
  364. 'Draw The Fish 
  365. Procedure FISH_DRAW[YPOS]
  366.    Shared FISH$
  367.    Randomize Timer
  368.    X=Rnd(4)+1
  369.    Bob YPOS+1,(X*45)+10,(YPOS*42)+22,48
  370.    Randomize Timer
  371.    Amal YPOS+1,FISH$
  372. End Proc
  373. 'Display The Tile Page And Wait For A Keypress 
  374. Procedure TITLE_PAGE
  375.    Shared TB,ENOUGH_MEM
  376.    FROGPOS=0
  377.    If Not ENOUGH_MEM
  378.       Load "Number_Leap/Frog_Title.ABK",6
  379.       Unpack 6 To 6
  380.       Erase 6
  381.    Else 
  382.       Unpack 6 To 6
  383.    End If 
  384.    Hide On 
  385.    Double Buffer 
  386.    Bob 7,120,28,44
  387.    Anim 7,"(44,6)(45,6)(46,6)(47,15)(46,6)(45,6)(44,6)l"
  388.    Bob 10,12,114,13
  389.    Screen Show 6
  390.    Clear Key 
  391.    Anim On 7
  392.    Repeat 
  393.       UPPER=Key State(76) or Jup(1)
  394.       LOWER=Key State(77) or Jdown(1)
  395.       LEFT=Key State(79) or Jleft(1)
  396.       RIGHT=Key State(78) or Jright(1)
  397.       TEMP1$=Inkey$ : TEMP2=Fire(1)
  398.       If UPPER and FROGPOS=1
  399.          UPPER_MOVE
  400.          Dec FROGPOS
  401.       Else 
  402.          If UPPER and FROGPOS=7
  403.             UPPER_MOVE
  404.             Inc FROGPOS
  405.          End If 
  406.       End If 
  407.       If LOWER and FROGPOS=0
  408.          LOWER_MOVE
  409.          Inc FROGPOS
  410.       Else 
  411.          If LOWER and FROGPOS=8
  412.             LOWER_MOVE
  413.             Dec FROGPOS
  414.          End If 
  415.       End If 
  416.       If RIGHT and FROGPOS>0 and FROGPOS<7
  417.          RIGHT_MOVE
  418.          Inc FROGPOS
  419.       End If 
  420.       If LEFT and FROGPOS>1 and FROGPOS<8
  421.          LEFT_MOVE
  422.          Dec FROGPOS
  423.       End If 
  424.    Until TEMP1$=" " or TEMP2
  425.    If FROGPOS<>8
  426.       TB=FROGPOS+2
  427.    End If 
  428.    Fade 2
  429.    Wait 20
  430.    Screen Close 6
  431.    SET_UP_SCREEN
  432. End Proc
  433. Procedure SET_UP_SCREEN
  434.    Shared ENOUGH_MEM
  435.    If Not ENOUGH_MEM
  436.       Load "Number_Leap/Frog_Screen.ABK",7
  437.       Unpack 7 To 7
  438.       Erase 7
  439.    Else 
  440.       Unpack 7 To 7
  441.    End If 
  442.    Screen Hide 7
  443.    Hide On 
  444.    GENERATE_MAZE
  445.    Bob 10,-8,34,13
  446.    EXECUTE_ANIMATION
  447.    Screen Show 7
  448. End Proc
  449. 'Pause For A While 
  450. Procedure W[TIME]
  451.    For DELAY=1 To TIME*100
  452.    Next DELAY
  453. End Proc
  454. 'Make Sure The Player Is On A Lily Before Speaking The Sum 
  455. Procedure CHECK_SPEECH
  456.    Shared FROGX,FROGY,FROG_SINK,CROSSED,TALK_POSSIBLE
  457.    If FROGX<>0 and FROG_SINK<>True and CROSSED<>True and TALK_POSSIBLE
  458.       SPEAK_LILY_PAD
  459.       Clear Key 
  460.    End If 
  461. End Proc
  462. 'Tell The Player The Sum Which Makes The Number On The Current Lily  
  463. Procedure SPEAK_LILY_PAD
  464.    Shared FROGX,FROGY,NUMS(),TB
  465.    NUM_SAY[TB]
  466.    TALK$=TALK$+Param$+" Times "
  467.    NUM_SAY[NUMS(FROGX,FROGY)/TB]
  468.    TALK$=TALK$+Param$+"=),,,,,,,"
  469.    NUM_SAY[NUMS(FROGX,FROGY)]
  470.    TALK$=TALK$+Param$
  471.    Amal Freeze 
  472.    TALK[TALK$]
  473.    Amal On 
  474. End Proc
  475. 'Say Any Number Between 0 and 199
  476. Procedure NUM_SAY[NUM]
  477.    Shared NUMBER$()
  478.    RET$=""
  479.    NUM$=Str$(NUM)
  480.    NUMLEN=Len(NUM$)-1
  481.    NUM$=Right$(NUM$,NUMLEN)
  482.    If NUM>99
  483.       RET$="one hundred and "
  484.    Else 
  485.       If NUM<10
  486.          RET$=NUM$
  487.       Else 
  488.          If NUM>9 and NUM<20
  489.             RET$=NUMBER$(NUM)
  490.          Else 
  491.             RET$=RET$+NUMBER$(Val(Left$(NUM$,1)))
  492.             If NUM mod 10<>0
  493.                RET$=RET$+" "+Right$(NUM$,1)
  494.             End If 
  495.          End If 
  496.       End If 
  497.    End If 
  498. End Proc[RET$]
  499. 'This Procedure Places Phonetic Numbers Into An Array
  500. Procedure SET_UP_SPEECH
  501.    Restore SPEECH_DATA
  502.    Shared NUMBER$()
  503.    For LOP=0 To 19
  504.       Read NUMBER$(LOP)
  505.    Next LOP
  506.    SPEECH_DATA:
  507.    Data "0","TEN","TWENTY","THIRTY","FORTY","FIFTY","SIXTY"
  508.    Data "seventy","ay te","nine te"
  509.    Data "Ten","eleven","Twellvve","thirttene","fourtene","fiftene"
  510.    Data "sixttene","seventene","Ate tene","nine tene"
  511. End Proc
  512. 'Console The Player When The Frog Sinks
  513. Procedure LOSERS_SPEECH
  514.    Amal Freeze 
  515.    TEMP=Rnd(2)
  516.    If TEMP=0
  517.       TALK["Oh dear,,,,,,,, (you didnot make it)"]
  518.    Else 
  519.       If TEMP=1
  520.          TALK["(shame),,,,,,, better luck next time"]
  521.       Else If TEMP=2
  522.             TALK["Woops,,,,,,,, (I forgot to tell you the frog couldnot swim)"]
  523.          End If 
  524.       End If 
  525.    End If 
  526. End Proc
  527. 'Give A Congratulations Message To Player
  528. Procedure WINNERS_SPEECH
  529.    Shared MOVES
  530.    NUM_SAY[MOVES]
  531.    Amal Freeze 
  532.    TALK["You took "+Param$+" moves to reach the other side of the pond"]
  533.    If MOVES=7
  534.       TALK["Thats really Fantastic"]
  535.    Else 
  536.       If MOVES>7 and MOVES<11
  537.          TALK["Thats not bad,,,,,, keep trying"]
  538.       Else 
  539.          If MOVES>10
  540.             TALK["Did you get lost,,,,,,,,,,,,,---, (well,,,,--, at least you didnot sinkkk)"]
  541.          End If 
  542.       End If 
  543.    End If 
  544.    Amal On 
  545. End Proc
  546. 'This Procedure Tags Some Spaces And A Full Stop Onto Some Speech
  547. Procedure TALK[TALK$]
  548.    Say TALK$+Space$(150-Len(TALK$))+"."
  549. End Proc